The present invention relates to information processing apparatus, an information processing method and program. The invention relates in general to the field of near-memory accelerators. In particular, it relates to pointer chasing operations performed by a processing element.
The concept of pointer chasing is known. A pointer is an object (data, variable), whose value refers to another value that is stored elsewhere in the memory, using the address of this other value. In other words, a pointer is a link that references a location in memory. A pointer may notably point to another pointer, and so on, such that multiple dereference operations may be required to retrieve the original value. Each level of indirection adds a performance cost.
Data structures of modern, e.g., object-oriented programming languages (such as Java, Python or C++) employ deep indirection for abstraction purposes (e.g., inheritance, containers such as lists or graphs). In addition to a program's data accesses, garbage collection (GC) frequently traverses all data structures in a program. Abstraction and GC make programmers more productive. However, for processors, the indirections translate to frequent pointer chasing, requiring it to pass through many different memory regions before arriving at the actual data to be processed.
As it may be realized, pointer chasing operations consume substantial bandwidth and cause memory cache pollution. Besides, one knows hardware accelerators, i.e., computer hardware that is capable of performing some specific functions faster than a general-purpose CPU.